CSI2572 devoir 1, date de soumission: 2 octobre 2003, 23 :55PM  (soumission par webCT)

10% par jour de retard,  (jusqu’au 6 octobre, 0 après). devoir individuel.

 

 

(3pts) Q1:

 

Étant donné un polynôme, , la (les) solution(s) de l’équation polynomiale   est (sont) appelé la racine du polynôme.

Il n’existe pas de méthode qui permette de calculer rapidement et facilement toutes les solutions d’une telle équation sous sa forme générale. Par contre, il existe plusieurs méthodes complémentaires dépendamment du type du polynôme.

 

Pour cette question, vous allez devoir implémenter une de ces méthodes. La méthode de la bissection considère des intervalles définis afin de determiner si une racine existe dans l’intervalle. Dépendamment de la précision recherché,  la méthode va diminuer l’intervalle jusqu’à une marge d’erreur acceptable.

 

La méthode fonctionne comme suis : Étant donné TOL (marge d’erreur), A (point initial de l’intervale dans lequel une racine se trouve), B (point final de l’intervalle dans lequel une racine se trouve), et M, le point milieu de l’intervalle :

 

·        Si la racine se trouve entre A et M, le processus est réitéré avec M comme nouvelle valeur pour B

·        Si la racine se trouve entre M et B, le processus est réitéré avec M comme nouvelle valeur pour A.

 

Le processus s’arrête lorsque la marge d’erreur du résultat obtenu est plus petite que celle spécifiée, TOL. En d’autre mots quand on sait qu’il y a une racine dans l’intervalle étudié et que cet intervalle est plus petit que TOL. Le résultat obtenu est alors le point A, B ou M qui est le plus proche de la racine.

 

Si le nombre maximale d’itérations est éxcedé et que la méthode n’a pas produit de résultat satisfaisant la marge d’erreur, le non succès est indiqué par la valeur 0 dans le champ SolValide de l’instance de la structure Solution qui est rendu par la fonction bissection. La méthode ne marche pas dans tous les cas.

 

pour cette question, vous devrez completer la fonction bissection dans le segment de code suivant :

------------------------------------------------

#include <stdio.h>

 

 

struct Solution{

 

              float NumericalSolution;

              int SolValide;     //0 indique une solution non utilisable

              float Error;

              int N;

};

 

 

float Px(float x, float A[4]);

struct Solution bissection(float A, float B, float TOL, int N, float Pol[4]);

 

int main(){

 

       float Pol[4] ={0.0, 0.0, 0.0, 0.0};

       float A = 0.0, B = 0.0;

       float TOL = 0.0;

       struct Solution Sol;

       int N = 0;

 

       char c[2] ="o";

 

       while(c[0] == 'o'){

 

printf("Entre les 4 valeurs des coefficients du polynome (separe par des espaces):\n");

       scanf("%f%f%f%f", &Pol[0], &Pol[1], &Pol[2], &Pol[3]);

 

printf("Entre les valeurs de l'intervale de recherche (separe par des espaces):\n");

      

scanf("%f%f", &A, &B);

 

printf("Entre la valeur de tolerance de l\'approximation du resultat:\n");

      

scanf("%f", &TOL);

 

       printf("Entre le nombre maximum d'iterations de la recherche:\n");

       scanf("%d", &N);

 

                     Sol = bissection(A, B, TOL, N, Pol);

 

                     if (Sol.SolValide){

      

printf("La racine de %.2f + %.2fx + %.2fx^2 + %.2fx^3 est \n%.3f\n", Pol[0], Pol[1], Pol[2], Pol[3], Sol. NumericalSolution);

                          

printf("La resultat a ete produit en %d iterations avec une marge d'erreur de %f\n", Sol.N, Sol.Error);

 

                     }

else {

printf("Votre input n\'a pas produit de resutat credible.\nEssayer avec plus d'iteration\n");

                     }

                    

              printf("Faire une autre operation recherche de racine (o/n)?\n");

              scanf("%s", c);

 

       }

       return 1;

}

 

 

 

 

 

/*Calcule la valeur du polynome du polynome (X0, X1, X2, X3) a la valeur x.*/

float Px(float x, float A[4]){

       return A[0] + A[1]*x + A[2]*x*x + A[3]*x*x*x;

}

 

 

//finds root of polynomial based on bisection method, within TOL and interval [A, B]

//max number of iteration is N.

struct Solution bissection(float A, float B, float TOL, int N, float Pol[4])

{

       /*Votre code ici*/

 }

 

--------------------------------------------------------------------------

 

 

 

 

(2pts)Q2:

 

Écrivez un petit paragraphe (20 lignes) décrivant les similarités et différences entre passer des paramètres par adresse et passer des paramètres par valeur à une fonction en C/C++. 

 

(5pts)Q3:

 

Pour cette question, vous allez devoir implémenter un automate cellulaire simple. Un automate cellulaire est un système qui évolue de manière discrète à partir d’un état initial et d’un ensemble de règles. Par exemple http://www.bitstorm.org/gameoflife/ présente un automate basé sur des règles fixes qui permet à l’utilisateur de spécifier des états initiaux différents.

 

À l’inverse de celui la, votre automate sera basé sur un état initial fixe, mais permettra à son utilisateur de spécifier les règles qui dictent son évolution. Il sera aussi plus simple parce qu’il n’évoluera que dans un sens précis (uni dimension). Chacune des règles choisis par l’utilisateur pourra être représentées par une série de diagrammes dans la forme:

Dans ces diagrammes, les 3 cases de la première rangée indiquent l’état initial des 3 cellules qui précédent la cellule de l’état suivant, et la case de la 2ème rangée indique l’état dans lequel la cellule doit entrer étant donné la configuration initiale.

 

Par exemple, le diagramme suivant représente la règle qui indique que si une cellule est précédée  par une cellule allumée à sa gauche, une cellule éteinte à sa droite et une cellule éteinte à la même position dans l’état précédent, cette cellule devrait être allumée.

La règle suivante, indique que la cellule devrait être éteinte  si la cellule qui la précède directement est allumée et que celles à droite et à gauche sont éteintes dans l’état précédent.

 

Il est possible de spécifier 8 règles différentes possibles (toujours dans cet ordre):

 

 

(les cases rouges pouvant être allumées ou éteintes (noires ou blanches)), pour un total de 255 possibilités. Si la case s’allume le code correspondant est 1. sinon, le code est 0. Votre programme acceptera un ensemble de 8 règles codés en binaire sur un octet et fera le output des n premiers états de l’automate.

 

 

Par exemple donné l’ensemble de règles suivantes (codées 01011010):

votre programme sortira le diagramme suivant (en 140 x 140):

 

 

 

 

 

                                                                     .                                                                     

                                                                    . .                                                                   

                                                                   .   .                                                                  

                                                                  . . . .                                                                 

                                                                 .       .                                                                

                                                                . .     . .                                                               

                                                               .   .   .   .                                                              

                                                              . . . . . . . .                                                              

                                                             .               .                                                            

                                                            . .             . .                                                            

                                                           .   .           .   .                                                          

                                                          . . . .         . . . .                                                         

                                                         .       .       .       .                                                        

                                                        . .     . .     . .     . .                                                       

                                                       .   .   .   .   .   .   .   .                                                      

                                                      . . . . . . . . . . . . . . . .                                                     

                                                     .                               .                                                    

                                                    . .                             . .                                                   

                                                   .   .                           .   .                                                   

                                                  . . . .                         . . . .                                                 

                                                 .       .                       .       .                                                 

                                                . .     . .                     . .     . .                                               

                                               .   .   .   .                   .   .   .   .                                              

                                              . . . . . . . .                 . . . . . . . .                                             

                                             .               .               .               .                                            

                                            . .             . .             . .             . .                                           

                                           .   .           .   .           .   .           .   .                                          

                                          . . . .         . . . .         . . . .         . . . .                                         

                                         .       .       .       .       .       .       .       .                                        

                                        . .     . .     . .     . .     . .     . .     . .     . .                                        

                                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .                                      

                                      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                     

                                     .                                                               .                                    

                                    . .                                                             . .                                   

                                   .   .                                                           .   .                                   

                                  . . . .                                                         . . . .                                 

                                 .       .                                                       .       .                                 

                                . .     . .                                                     . .     . .                               

                               .   .   .   .                                                   .   .   .   .                              

                              . . . . . . . .                                                 . . . . . . . .                             

                             .               .                                               .               .                            

                            . .             . .                                             . .             . .                           

                           .   .           .   .                                           .   .           .   .                          

                          . . . .         . . . .                                         . . . .         . . . .                         

                         .       .       .       .                                       .       .       .       .                        

                        . .     . .     . .     . .                                     . .     . .     . .     . .                        

                       .   .   .   .   .   .   .   .                                   .   .   .   .   .   .   .   .                      

                      . . . . . . . . . . . . . . . .                                 . . . . . . . . . . . . . . . .                     

                     .                               .                               .                               .                    

                    . .                             . .                             . .                             . .                   

                   .   .                           .   .                           .   .                           .   .                  

                  . . . .                         . . . .                         . . . .                         . . . .                 

                 .       .                       .       .                       .       .                       .       .                

                . .     . .                     . .     . .                     . .     . .                     . .     . .               

               .   .   .   .                   .   .   .   .                   .   .   .   .                   .   .   .   .              

              . . . . . . . .                 . . . . . . . .                 . . . . . . . .                 . . . . . . . .             

             .               .               .               .               .               .               .               .             

            . .             . .             . .             . .             . .             . .             . .             . .           

           .   .           .   .           .   .           .   .           .   .           .   .           .   .           .   .          

          . . . .         . . . .         . . . .         . . . .         . . . .         . . . .         . . . .         . . . .         

         .       .       .       .       .       .       .       .       .       .       .       .       .       .       .       .        

        . .     . .     . .     . .     . .     . .     . .     . .     . .     . .     . .     . .     . .     . .     . .     . .       

       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .      

      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     

     .                                                                                                                               .    

    . .                                                                                                                             . .   

   .   .                                                                                                                           .   .  

  . . . .                                                                                                                         . . . . 

 .       .                                                                                                                       .       .

. .     . .                                                                                                                     . .     . .

   .   .   .                                                                                                                   .   .   .  

  . . . . . .                                                                                                                 . . . . . . 

 .           .                                                                                                               .           .

. .         . .                                                                                                             . .         . .

   .       .   .                                                                                                           .   .       .  

  . .     . . . .                                                                                                         . . . .     . . 

 .   .   .       .                                                                                                       .       .   .   .

. . . . . .     . .                                                                                                     . .     . . . . . .

           .   .   .                                                                                                   .   .   .          

          . . . . . .                                                                                                 . . . . . .         

         .           .                                                                                               .           .        

        . .         . .                                                                                             . .         . .       

       .   .       .   .                                                                                           .   .       .   .      

      . . . .     . . . .                                                                                         . . . .     . . . .     

     .       .   .       .                                                                                       .       .   .       .    

    . .     . . . .     . .                                                                                     . .     . . . .     . .   

   .   .   .       .   .   .                                                                                   .   .   .       .   .   .  

  . . . . . .     . . . . . .                                                                                 . . . . . .     . . . . . . 

 .           .   .           .                                                                               .           .   .           .

. .         . . . .         . .                                                                             . .         . . . .         . .

   .       .       .       .   .                                                                           .   .       .       .       .  

  . .     . .     . .     . . . .                                                                         . . . .     . .     . .     . . 

 .   .   .   .   .   .   .       .                                                                       .       .   .   .   .   .   .   .

. . . . . . . . . . . . . .     . .                                                                     . .     . . . . . . . . . . . . . .

                           .   .   .                                                                   .   .   .                          

                          . . . . . .                                                                 . . . . . .                         

                         .           .                                                               .           .                        

                        . .         . .                                                             . .         . .                       

                       .   .       .   .                                                           .   .       .   .                       

                      . . . .     . . . .                                                         . . . .     . . . .                     

                     .       .   .       .                                                       .       .   .       .                    

                    . .     . . . .     . .                                                     . .     . . . .     . .                   

                   .   .   .       .   .   .                                                   .   .   .       .   .   .                  

                  . . . . . .     . . . . . .                                                 . . . . . .     . . . . . .                 

                 .           .   .           .                                               .           .   .           .                

                . .         . . . .         . .                                             . .         . . . .         . .               

               .   .       .       .       .   .                                           .   .       .       .       .   .              

              . . . .     . .     . .     . . . .                                         . . . .     . .     . .     . . . .             

             .       .   .   .   .   .   .       .                                       .       .   .   .   .   .   .       .            

            . .     . . . . . . . . . . . .     . .                                     . .     . . . . . . . . . . . .     . .            

           .   .   .                       .   .   .                                   .   .   .                       .   .   .          

          . . . . . .                     . . . . . .                                 . . . . . .                     . . . . . .         

         .           .                   .           .                               .           .                   .           .        

        . .         . .                 . .         . .                             . .         . .                 . .         . .       

       .   .       .   .               .   .       .   .                           .   .       .   .               .   .       .   .      

      . . . .     . . . .             . . . .     . . . .                         . . . .     . . . .             . . . .     . . . .     

     .       .   .       .           .       .   .       .                       .       .   .       .           .       .   .       .    

    . .     . . . .     . .         . .     . . . .     . .                     . .     . . . .     . .         . .     . . . .     . .   

   .   .   .       .   .   .       .   .   .       .   .   .                   .   .   .       .   .   .       .   .   .       .   .   .  

  . . . . . .     . . . . . .     . . . . . .     . . . . . .                 . . . . . .     . . . . . .     . . . . . .     . . . . . . 

 .           .   .           .   .           .   .           .               .           .   .           .   .           .   .           .

. .         . . . .         . . . .         . . . .         . .             . .         . . . .         . . . .         . . . .         . .

   .       .       .       .       .       .       .       .   .           .   .       .       .       .       .       .       .       .  

  . .     . .     . .     . .     . .     . .     . .     . . . .         . . . .     . .     . .     . .     . .     . .     . .     . . 

 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .       .       .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     . .     . .     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

                                                           .   .   .   .   .   .                                                          

                                                          . . . . . . . . . . . .                                                         

                                                         .                       .                                                        

                                                        . .                     . .                                                       

                                                       .   .                   .   .                                                      

                                                      . . . .                 . . . .                                                      

                                                     .       .               .       .                                                    

                                                    . .     . .             . .     . .                                                    

                                                   .   .   .   .           .   .   .   .                                                  

                                                  . . . . . . . .         . . . . . . . .                                                 

                                                 .               .       .               .                                                

                                                . .             . .     . .             . .                                               

                                               .   .           .   .   .   .           .   .                                              

                                              . . . .         . . . . . . . .         . . . .                                             

 

 

 

 

tandis que l’ensemble de règles suivantes (codées 11000110) :

produira (en 200 x 200):

 

 

                                                                                                   .                                                                                                  

..................................................................................................  ...................................................................................................

.                                                                                                 . .                                                                                                  

 ................................................................................................  . ..................................................................................................

 .                                                                                               .  ..                                                                                                

  ..............................................................................................  . . .................................................................................................

. .                                                                                             .  . ..                                                                                                

 . ............................................................................................  .  .. ................................................................................................

  ..                                                                                           .  . . ..                                                                                              

. . ..........................................................................................  .  . .. ...............................................................................................

 . ..                                                                                         .  .  .. ..                                                                                             

  .. ........................................................................................  .  . . .. ..............................................................................................

. . ..                                                                                       .  .  . .. ..                                                                                             

 . .. ......................................................................................  .  .  .. .. .............................................................................................

  .. ..                                                                                     .  .  . . .. ..                                                                                           

. . .. ....................................................................................  .  .  . .. .. ............................................................................................

 . .. ..                                                                                   .  .  .  .. .. ..                                                                                           

  .. .. ..................................................................................  .  .  . . .. .. ...........................................................................................

. . .. ..                                                                                 .  .  .  . .. .. ..                                                                                         

 . .. .. ................................................................................  .  .  .  .. .. .. ..........................................................................................

  .. .. ..                                                                               .  .  .  . . .. .. ..                                                                                         

. . .. .. ..............................................................................  .  .  .  . .. .. .. .........................................................................................

 . .. .. ..                                                                             .  .  .  .  .. .. .. ..                                                                                       

  .. .. .. ............................................................................  .  .  .  . . .. .. .. ........................................................................................

. . .. .. ..                                                                           .  .  .  .  . .. .. .. ..                                                                                      

 . .. .. .. ..........................................................................  .  .  .  .  .. .. .. .. .......................................................................................

  .. .. .. ..                                                                         .  .  .  .  . . .. .. .. ..                                                                                      

. . .. .. .. ........................................................................  .  .  .  .  . .. .. .. .. ......................................................................................

 . .. .. .. ..                                                                       .  .  .  .  .  .. .. .. .. ..                                                                                    

  .. .. .. .. ......................................................................  .  .  .  .  . . .. .. .. .. .....................................................................................

. . .. .. .. ..                                                                     .  .  .  .  .  . .. .. .. .. ..                                                                                    

 . .. .. .. .. ....................................................................  .  .  .  .  .  .. .. .. .. .. ....................................................................................

  .. .. .. .. ..                                                                   .  .  .  .  .  . . .. .. .. .. ..                                                                                  

. . .. .. .. .. ..................................................................  .  .  .  .  .  . .. .. .. .. .. ...................................................................................

 . .. .. .. .. ..                                                                 .  .  .  .  .  .  .. .. .. .. .. ..                                                                                 

  .. .. .. .. .. ................................................................  .  .  .  .  .  . . .. .. .. .. .. ..................................................................................

. . .. .. .. .. ..                                                               .  .  .  .  .  .  . .. .. .. .. .. ..                                                                                

 . .. .. .. .. .. ..............................................................  .  .  .  .  .  .  .. .. .. .. .. .. .................................................................................

  .. .. .. .. .. ..                                                             .  .  .  .  .  .  . . .. .. .. .. .. ..                                                                               

. . .. .. .. .. .. ............................................................  .  .  .  .  .  .  . .. .. .. .. .. .. ................................................................................

 . .. .. .. .. .. ..                                                           .  .  .  .  .  .  .  .. .. .. .. .. .. ..                                                                               

  .. .. .. .. .. .. ..........................................................  .  .  .  .  .  .  . . .. .. .. .. .. .. ...............................................................................

. . .. .. .. .. .. ..                                                         .  .  .  .  .  .  .  . .. .. .. .. .. .. ..                                                                             

 . .. .. .. .. .. .. ........................................................  .  .  .  .  .  .  .  .. .. .. .. .. .. .. ..............................................................................

  .. .. .. .. .. .. ..                                                       .  .  .  .  .  .  .  . . .. .. .. .. .. .. ..                                                                             

. . .. .. .. .. .. .. ......................................................  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .............................................................................

 . .. .. .. .. .. .. ..                                                     .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. ..                                                                           

  .. .. .. .. .. .. .. ....................................................  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. ............................................................................

. . .. .. .. .. .. .. ..                                                   .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. ..                                                                          

 . .. .. .. .. .. .. .. ..................................................  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. ...........................................................................

  .. .. .. .. .. .. .. ..                                                 .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. ..                                                                         

. . .. .. .. .. .. .. .. ................................................  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. ..........................................................................

 . .. .. .. .. .. .. .. ..                                               .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. ..                                                                        

  .. .. .. .. .. .. .. .. ..............................................  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .........................................................................

. . .. .. .. .. .. .. .. ..                                             .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. ..                                                                        

 . .. .. .. .. .. .. .. .. ............................................  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. ........................................................................

  .. .. .. .. .. .. .. .. ..                                           .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. ..                                                                      

. . .. .. .. .. .. .. .. .. ..........................................  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .......................................................................

 . .. .. .. .. .. .. .. .. ..                                         .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. ..                                                                      

  .. .. .. .. .. .. .. .. .. ........................................  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. ......................................................................

. . .. .. .. .. .. .. .. .. ..                                       .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. ..                                                                    

 . .. .. .. .. .. .. .. .. .. ......................................  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .....................................................................

  .. .. .. .. .. .. .. .. .. ..                                     .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. ..                                                                   

. . .. .. .. .. .. .. .. .. .. ....................................  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. ....................................................................

 . .. .. .. .. .. .. .. .. .. ..                                   .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. ..                                                                  

  .. .. .. .. .. .. .. .. .. .. ..................................  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. ...................................................................

. . .. .. .. .. .. .. .. .. .. ..                                 .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. ..                                                                 

 . .. .. .. .. .. .. .. .. .. .. ................................  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. ..................................................................

  .. .. .. .. .. .. .. .. .. .. ..                               .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. ..                                                                

. . .. .. .. .. .. .. .. .. .. .. ..............................  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .................................................................

 . .. .. .. .. .. .. .. .. .. .. ..                             .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. ..                                                               

  .. .. .. .. .. .. .. .. .. .. .. ............................  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. ................................................................

. . .. .. .. .. .. .. .. .. .. .. ..                           .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. ..                                                               

 . .. .. .. .. .. .. .. .. .. .. .. ..........................  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. ...............................................................

  .. .. .. .. .. .. .. .. .. .. .. ..                         .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. ..                                                             

. . .. .. .. .. .. .. .. .. .. .. .. ........................  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. ..............................................................

 . .. .. .. .. .. .. .. .. .. .. .. ..                       .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. ..                                                             

  .. .. .. .. .. .. .. .. .. .. .. .. ......................  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .............................................................

. . .. .. .. .. .. .. .. .. .. .. .. ..                     .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. ..                                                           

 . .. .. .. .. .. .. .. .. .. .. .. .. ....................  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. ............................................................

  .. .. .. .. .. .. .. .. .. .. .. .. ..                   .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. ..                                                          

. . .. .. .. .. .. .. .. .. .. .. .. .. ..................  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. ...........................................................

 . .. .. .. .. .. .. .. .. .. .. .. .. ..                 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                         

  .. .. .. .. .. .. .. .. .. .. .. .. .. ................  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. ..........................................................

. . .. .. .. .. .. .. .. .. .. .. .. .. ..               .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                        

 . .. .. .. .. .. .. .. .. .. .. .. .. .. ..............  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .........................................................

  .. .. .. .. .. .. .. .. .. .. .. .. .. ..             .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                        

. . .. .. .. .. .. .. .. .. .. .. .. .. .. ............  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ........................................................

 . .. .. .. .. .. .. .. .. .. .. .. .. .. ..           .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                      

  .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..........  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .......................................................

. . .. .. .. .. .. .. .. .. .. .. .. .. .. ..         .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                     

 . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ........  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ......................................................

  .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..       .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                    

. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ......  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .....................................................

 . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..     .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                   

  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ....  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ....................................................

. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                  

 . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...................................................

  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                 

. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..................................................

 . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                                 

  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .................................................

. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                               

 . .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ................................................

  .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                               

. . .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...............................................

 . .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                             

  .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..............................................

. . .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                            

 . .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .............................................

  .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                           

. . .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ............................................

 . .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                          

  .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...........................................

. . .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                         

 . .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..........................................

  .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                        

. . .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .........................................

 . .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                        

  .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ........................................

. . .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                      

 . .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .......................................

  .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                     

. . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ......................................

 . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                    

  .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .....................................

. . .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                   

 . .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ....................................

  .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                  

. . .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...................................

 . .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                 

  .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..................................

. . .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                                 

 . .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .................................

  .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                               

. . .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ................................

 . .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                              

  .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...............................

. . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                             

 . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..............................

  .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                            

. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .............................

 . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                           

  .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ............................

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                          

 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...........................

  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                         

.  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..........................

 .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                        

  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .........................

.  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                       

 .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ........................

  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                      

.  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .......................

 .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                     

  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ......................

.  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                    

 .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .....................

  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                   

.  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ....................

 .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                   

  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...................

.  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                 

 .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..................

  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..                

.  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .................

 .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..               

  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ................

.  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..              

 .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...............

  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..             

.  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..............

 .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..            

  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .............

.  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..            

 .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ............

  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..          

.  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...........

 .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..         

  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..........

.  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..        

 .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .........

  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..       

.  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ........

 .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..      

  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .......

.  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..     

 .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ......

  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..    

.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .....

 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..   

  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ....

.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..  

 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...

  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 

.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .

.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .

 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .

 

 

 

Dans le output, les case éteintes seront représentées par un espace. Les cases allumées seront représentées par un point.

Pour cette question, le programme suivant vous est fournis :

-----------------------------

 

#include <stdio.h>

#include <stdlib.h>

 

#define ROWS 60

#define COLUMNS 60

#define EMPTY ' '

#define FULL '.'

 

 

char** CreateFrame(char rules[9], int rows, int columns);

 

void PrintGrid(char** Grid, int rows);

 

int main(){

 

   char r[9];

   scanf ("%s", r);

 

   if(r[0] != 'q'){ 

       char** Grid = CreateFrame(r, ROWS, COLUMNS);

       PrintGrid(Grid, ROWS);

 

       for(int i=0; i<ROWS;i++){

 

                 free(Grid[i]);

       }

       free(Grid);

       main();

   }

 

   return 1; 

}

 

 

char** CreateFrame(char rules[9], int rows, int columns){

 

       /*Votre code ici*/

 

}

 

 

void PrintGrid(char**Grid, int rows){

 

       printf("\n\n");

       printf("\n\n");

 

       for(int i=0; i<rows; i++){

              printf("%s\n", Grid[i]);

       }

       printf("\n\n");

}

 

 

 

Vous rendrez seulement le code qui compose la fonction CreateFrame. Cette fonction alloue la mémoire nécessaire à la création d’une matrice de caractères de taille [rows  X columns] dont chaque colonnes peut être considérée (et imprimée) comme une chaîne de caractères. La fonction remplira ensuite la matrice crée de cette manière de points ou d’espaces vides colonnes par colonnes dépendamment des règles définies dans le tableau rules et des colonnes précédentes. Toutes les impressions passeront par la fonction PrintGrid, votre code ne faisant que créer et remplir la matrice de la manière appropriée. Votre fonction retournera ensuite un pointeur à la matrice crée par votre fonction.

 

Instructions supplémentaires :

 

L’état initial (1 ère colonne) du tableau est composé de cellules éteintes, mis à part la cellule du milieu (vous pouvez supposez que columns sera toujours un nombre pair, la dernière case de chaque tableau étant un indicateur de chaîne de caractère)

 

Vous pouvez aussi supposer que le tableau rules ne contiendra que les caractères  0 et  1, à part pour le dernier caractère qui indique une string.

 

Si une cellule se trouve sur la bordure du tableau (précédée de 2 cellules seulement), vous supposerez que la cellule précédente qui se trouve l’extérieur du tableau est éteinte.